package com.coin900.coin.service.sbi;

import com.coin900.coin.persist.sbi.SbiSystemConfigVO;
import com.value.mybatis.IDaoRouter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author shui
 * @create 2017-12-11
 **/
@Service
public class SbiSystemConfigService implements ISbiSystemConfigService {

    @Override
    public void insertSbiSystemConfig(SbiSystemConfigVO vo){
        daoRouter.insert("SbiSystemConfig.insertSbiSystemConfig", vo);
    }

    @Override
    public void updateSbiSystemConfig(SbiSystemConfigVO vo){
        daoRouter.update("SbiSystemConfig.updateSbiSystemConfig", vo);
    }

    @Override
    public void deleteSbiSystemConfig(SbiSystemConfigVO vo){
        daoRouter.update("SbiSystemConfig.deleteSbiSystemConfig", vo);
    }

    @Override
    public List<SbiSystemConfigVO> loadSbiSystemConfig(Map<String, Object> params){
        return daoRouter.query("SbiSystemConfig.loadSbiSystemConfig",params);
    }

    @Override
    public SbiSystemConfigVO loadSystemConfig(String type, String subtype, String configKey) {
        Map<String,Object> params = new HashMap<>();
        params.put("type",type);
        params.put("subtype",subtype);
        params.put("configKey",configKey);
        return daoRouter.queryForObject("SbiSystemConfig.loadSbiSystemConfig",params);
    }


    @Override
    public void updateSbiSystemConfig(List<SbiSystemConfigVO> sbiSystemConfigVOS) {
            Map<String,Object> params = new HashMap<>();
            for (SbiSystemConfigVO configVO:sbiSystemConfigVOS){
                //修改
                String configKey = configVO.getConfigKey();
                String type = configVO.getType();
                String subtype = configVO.getSubtype();
                params.put("type",type);
                params.put("subtype",subtype);
                params.put("configKey",configKey);
                SbiSystemConfigVO dbConfigVO = this.loadSystemConfig(type, subtype, configKey);
                dbConfigVO.setValue(configVO.getValue());
                this.updateSbiSystemConfig(dbConfigVO);
            }
    }


    @Override
    public SbiSystemConfigVO getSystemConfig(String type, String subtype, String configKey, String env) {
        Map<String, Object> params = new HashMap<>();
        params.put("type", type);
        params.put("subtype", subtype);
        params.put("configKey", configKey);
        params.put("env", env);
        SbiSystemConfigVO systemConfigVO = this.daoRouter.queryForObject("SbiSystemConfig.loadSbiSystemConfig", params);
        return systemConfigVO;
    }


    @Autowired
    private IDaoRouter daoRouter;

}